home *** CD-ROM | disk | FTP | other *** search
-
- 'REFLECT.BAS
- 'this program calculates the optimum angle of take-off and arrival
- 'for meteor-burst communications between two sites. The height of
- 'the reflecting meteor trails is calculated from the empirical
- 'formula given in CCIR Report 251-3 for the frequency of operation.
- 'Reflections are assumed to occur at mid-path, which results in
- 'the angle of take-off equalling the angle of arrival.
- 'The angle of incidence and reflection (φ) at the reflecting plane
- 'is also calculated.
-
- GOSUB TITLE
-
- MENU:
- CLS
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ MBC LINK CHARACTERISTICS (STATIC) - MODULE 8 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
-
-
-
- PRINT
- PRINT "CHOOSE:"
- PRINT
- PRINT " 1. ENGLISH MEASURE - STATUTE MILES"
- PRINT " 2. METRIC MEASURE - KILOMETERS"
- PRINT
- INPUT " ENTER CHOICE 1 OR 2: "; U%
-
- IF U% = 1 GOTO ENTERENGLISH
-
- CLS
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ MBC LINK CHARACTERISTICS (STATIC) - MODULE 8 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
-
- PRINT
- INPUT "ENTER DISTANCE BETWEEN SITE A AND SITE B (KILOMETERS): "; D#
- GOTO CALCA
-
-
- ENTERENGLISH:
- CLS
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ MBC LINK CHARACTERISTICS (STATIC) - MODULE 8 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
- PRINT
- INPUT "ENTER DISTANCE BETWEEN SITE A AND SITE B (MILES): "; D#
-
- D# = 1.609344 * D# 'convert miles to kilometers
-
- GOTO CALCA
-
-
- CALCA:
-
- 'main calculation routine
-
- PRINT
- INPUT "ENTER FREQUENCY OF OPERATION (MHZ): "; F
- PRINT
-
-
-
-
- R = 6370 'nominal earth radius in km.
- PI = 4 * ATN(1)
- H = -17 * (LOG(F) / LOG(10)) + 124 'nominal height of reflection in km.
- ANGLEA# = .5 * D# / R
- BPLUSC = PI - ANGLEA#
- B = R + H
- C = R
- BMINUSC = 2 * ATN(((B - C) / (B + C)) * TAN(.5 * (PI - ANGLEA#)))
- ANGLEB# = .5 * (BPLUSC + BMINUSC)
- TOA# = ANGLEB# - PI / 2
- TOA# = TOA# * (180 / PI)
- ANGLEC# = PI - ANGLEA# - ANGLEB#
- A = SQR(B ^ 2 + C ^ 2 - 2 * B * C * COS(ANGLEA#))
- DP = 2 * A 'total slant, up/down path length
- LL = 32.45 + 20 * LOG(F) / LOG(10) + 20 * LOG(DP) / LOG(10) 'l.o.s. path loss dB
- GOSUB MBLOSS
-
- RESULT:
-
- PRINT "OPTIMUM ANGLE OF TAKE-OFF AND ARRIVAL FOR MID-PATH"
- PRINT USING "REFLECTION POINT AT ### km ALTITUDE = "; H;
-
- IF ABS(TOA#) < 0 THEN GOTO TOOFAR
-
- PRINT USING " ##.# DEGREES"; TOA#
- PRINT
- IF TOA# < 0 THEN GOSUB TOOFAR
- PRINT USING "REFLECTION ANGLE φ = ##.# DEGREES"; ANGLEC# * (180 / PI)
- PRINT
- PRINT USING "PATH LENGTH GROUND TO REFLECTING POINT = #### km"; A
- PRINT
- PRINT USING "FREE SPACE UP DOWN PATH LOSS = ###.# dB"; LL
- PRINT
- PRINT USING "REFLECTION LOSS AT METEOR TRAIL (MIN/AVG/MAX) = ###.# / ###.# / ###.# dB"; REFLOSS(0); REFLOSS(1); REFLOSS(2)
- PRINT USING "OVERALL MBC PATH LOSS (MIN/AVG/MAX) = ###.# / ###.# / ###.# dB"; MBLOSSDB(0); MBLOSSDB(1); MBLOSSDB(2)
-
-
- PRINT
- PRINT "CHOOSE:"
- PRINT " 1. CONTINUE WITH NEW CALCULATION"
- PRINT " 2. QUIT"
- PRINT " ENTER CHOICE 1 OR 2: ";
- INPUT ANS%
- IF ANS% = 1 THEN GOTO MENU ELSE GOTO ENDING
-
-
-
- MBLOSS: 'calculate MBC path loss, static case, no time variation
- 'using formula from Sugar and CCIR Report 251-3
- FOR INDEX = 0 TO 2 STEP 1
- BETA = 45 * INDEX 'assign value to beta (0°<ß<90°)
- BETA = BETA * (PI / 180) 'change from degrees to radians
- LAMBDA = 300 / F
- SECPHI = 1 / COS(ANGLEC#)
- SINPHI = SIN(ANGLEC#)
- COSBETA = COS(BETA)
-
- L = SQR((LAMBDA * A * A) / ((A + A) * (1 - (SINPHI ^ 2) * (COSBETA ^ 2))))
-
- RE# = 2.8E-15 'effective electron radius - meters
- Q# = 1E+14 'electron line density - electrons/meter
-
- SIGMA = 4 * PI * (RE# ^ 2) * (Q# ^ 2) * (L ^ 2)
-
- LGR0# = .035 * H - 3.45
- R0 = 10 ^ LGR0#
-
- A1 = EXP((8 * PI ^ 2 * R0 ^ 2) / (LAMBDA ^ 2 * SECPHI ^ 2))
-
- MBLOSS(INDEX) = (LAMBDA ^ 2 * SIGMA * A1) / (64 * PI ^ 3 * A ^ 4)
- MBLOSSDB(INDEX) = -20 * LOG(MBLOSS(INDEX)) / LOG(10)
- REFLOSS(INDEX) = MBLOSSDB(INDEX) - LL
- NEXT INDEX
-
- RETURN
-
- TOOFAR:
-
- PRINT "** NEGATIVE ELEVATION ANGLE INDICATES DISTANCE BEYOND RANGE **"
- PRINT
-
- RETURN
-
-
- ENDING:
- CLS
- PRINT
- LOCATE 10, 25
- PRINT "≡≡≡ PROGRAM COMPLETED ≡≡≡"
- END
-
-
- '╔═══════════════════════════════════════════════════════════╗
- '║ Program Author ║
- '║ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ║
- '║ ║
- '║ Jacob Z. Schanker, P.E. ║
- '║ ║
- '║ Last revised: May 1990 ║
- '║ ║
- '╚═══════════════════════════════════════════════════════════╝
-
- TITLE:
- 'opening screen for meteor burst programs
- CLS
-
- LOCATE 5, 25
- PRINT "Supplemental Computer Programs"
- LOCATE 6, 38
- PRINT "to"
- LOCATE 7, 27
- PRINT "METEOR BURST COMMUNICATION"
- LOCATE 9, 38
- PRINT "by"
- LOCATE 10, 31
- PRINT "Jacob Z. Schanker"
- LOCATE 14, 24
- PRINT "COPYRIGHT 1990 ARTECH HOUSE, INC."
- LOCATE 22, 25
- PRINT "<< Press any key to continue >>"
- WHILE INKEY$ = ""
- WEND
- CLS
- RETURN
-
-